home *** CD-ROM | disk | FTP | other *** search
- /*
- File: AVTransport.h
-
- Contains: Definitions and interfaces for AV transport control driver
- family.
-
- Version: 1.0
-
- Written by: Erik Staats
-
- Copyright: © 1996-1998 by Apple Computer, Inc., all rights reserved.
-
- File Ownership:
-
- DRI: Eric Anderson
-
- Other Contact:
-
- Technology: FireWire
-
- Writers:
-
- (jkl) Jay Lloyd
-
- Change History (most recent first):
-
- <10> 1/15/98 jkl Update for new interfaces.
- <FW9> 2/7/97 ES Added procedure prototype for GetNextAVTClientEvent.
- <FW8> 10/22/96 ES Changed to generic driver model.
- <FW7> 9/24/96 GG Added type definitions support for Nextframe, previousframe,
- slow, fastplay, review, playback, pause, rewind, and fastforward
- and whatchadoing.
- <FW6> 7/31/96 ES Added dumpBufferOffset to AVTDumpParams.
- <FW5> 7/8/96 ES Added support for snap shot grabbing and playing capabilities.
- <FW4> 6/20/96 ES Made this look more like a .i generated interface.
- <FW3> 6/20/96 ES Changed some comments and formatting.
- <FW2> 6/20/96 ES Filled in contains and written by fields.
- <FW1> 6/20/96 ES first checked in
-
- */
-
- #ifndef __AVTRANSPORT__
- #define __AVTRANSPORT__
-
- #ifndef __TYPES__
- #include <Types.h>
- #endif
- #ifndef __APPLEEVENTS__
- #include <AppleEvents.h>
- #endif
- #ifndef __NAMEREGISTRY__
- #include <NameRegistry.h>
- #endif
-
- #ifdef __cplusplus
- extern "C" {
- #endif
-
- #if PRAGMA_IMPORT_SUPPORTED
- #pragma import on
- #endif
-
- #if PRAGMA_ALIGN_SUPPORTED
- #pragma options align=mac68k
- #endif
-
- ////////////////////////////////////////////////////////////////////////////////
- //
- // AV transport control driver family typedefs.
- //
-
- typedef struct OpaqueAVTClientID* AVTClientID;
- typedef struct OpaqueAVTDriverID* AVTDriverID;
-
- enum
- {
- kInvalidAVTClientID = 0,
- kInvalidAVTDriverID = 0
- };
-
- enum
- {
- kNdrvTypeIsAVTransport = 'AVT '
- };
-
- enum
- {
- // Apple event class for AV transport control driver family.
- kAEAVTransportEventClass = 'AVT ',
-
- // Apple events sent by AV transport control driver family.
- kAEAVTransportDeviceAdded = 'ADDD',
- kAEAVTransportDeviceRemoved = 'RMVD',
-
- // Parameters used by AV transport control driver family Apple events.
- kAEAVTDriverIDKey = 'DRID',
- kAEAVTDriverIDType = typeLongInteger //zzz should we have our own???
- };
-
- struct AVTInterfaceParamsStruct
- {
- UInt32 interfaceSelector;
- };
- typedef struct AVTInterfaceParamsStruct
- AVTInterfaceParams,
- *AVTInterfaceParamsPtr;
-
- typedef OSErr
- (AVTInterfaceProc) (
- AVTInterfaceParamsPtr pInterfaceParams);
- typedef AVTInterfaceProc *AVTInterfaceProcPtr;
-
- enum
- {
- cscAVTCommand = 2
- };
-
- enum
- {
- kAVTransportStop = 1,
- kAVTransportPlay = 2,
- kAVTransportNextFrame = 3,
- kAVTransportPreviousFrame = 4,
- kAVTransportSlow = 5,
- kAVTransportFastPlay = 6,
- kAVTransportReview = 7,
- kAVTransportPlayBack = 8,
- kAVTransportPause = 9,
- kAVTransportRewind = 10,
- kAVTransportFastForward = 11,
- kAVTransportDump = 1000,
- kAVTransportPlaySnapShot = 1001,
- kAVTransportStopSnapShot = 1002,
- kAVTransportWhatchaDoing = 1003
- };
-
- struct AVTGenericParamsStruct
- {
- AVTInterfaceParams avtInterfaceParams;
- Ptr responseBufferPtr;
- UInt32 responseBufferSize;
- };
- typedef struct AVTGenericParamsStruct
- AVTGenericParams,
- *AVTGenericParamsPtr;
-
- struct AVTInitializeParamsStruct
- {
- AVTInterfaceParams avtInterfaceParams;
- RegEntryID *pDriverRegEntry;
- };
- typedef struct AVTInitializeParamsStruct
- AVTInitializeParams,
- *AVTInitializeParamsPtr;
-
- struct AVTTerminateParamsStruct
- {
- AVTInterfaceParams avtInterfaceParams;
- RegEntryID *pDriverRegEntry;
- };
- typedef struct AVTTerminateParamsStruct
- AVTTerminateParams,
- *AVTTerminateParamsPtr;
-
- struct AVTPlayParamsStruct
- {
- AVTInterfaceParams avtInterfaceParams;
- Ptr responseBufferPtr;
- UInt32 responseBufferSize;
- };
- typedef struct AVTPlayParamsStruct
- AVTPlayParams,
- *AVTPlayParamsPtr;
-
- struct AVTRewindParamsStruct
- {
- AVTInterfaceParams avtInterfaceParams;
- Ptr responseBufferPtr;
- UInt32 responseBufferSize;
- };
- typedef struct AVTRewindParamsStruct
- AVTRewindParams,
- *AVTRewindParamsPtr;
-
- struct AVTReviewParamsStruct
- {
- AVTInterfaceParams avtInterfaceParams;
- Ptr responseBufferPtr;
- UInt32 responseBufferSize;
- };
- typedef struct AVTReviewParamsStruct
- AVTReviewParams,
- *AVTReviewParamsPtr;
-
- struct AVTFastForwardParamsStruct
- {
- AVTInterfaceParams avtInterfaceParams;
- Ptr responseBufferPtr;
- UInt32 responseBufferSize;
- };
- typedef struct AVTFastForwardParamsStruct
- AVTFastForwardParams,
- *AVTFastForwardParamsPtr;
-
- struct AVTFastPlayParamsStruct
- {
- AVTInterfaceParams avtInterfaceParams;
- Ptr responseBufferPtr;
- UInt32 responseBufferSize;
- };
- typedef struct AVTFastPlayParamsStruct
- AVTFastPlayParams,
- *AVTFastPlayParamsPtr;
-
- struct AVTStopParamsStruct
- {
- AVTInterfaceParams avtInterfaceParams;
- Ptr responseBufferPtr;
- UInt32 responseBufferSize;
- };
- typedef struct AVTStopParamsStruct
- AVTStopParams,
- *AVTStopParamsPtr;
-
- struct AVTPauseParamsStruct
- {
- AVTInterfaceParams avtInterfaceParams;
- Ptr responseBufferPtr;
- UInt32 responseBufferSize;
- };
- typedef struct AVTPauseParamsStruct
- AVTPauseParams,
- *AVTPauseParamsPtr;
-
- struct AVTSlowParamsStruct
- {
- AVTInterfaceParams avtInterfaceParams;
- Ptr responseBufferPtr;
- UInt32 responseBufferSize;
- };
- typedef struct AVTSlowParamsStruct
- AVTSlowParams,
- *AVTSlowParamsPtr;
-
- struct AVTNextFrameParamsStruct
- {
- AVTInterfaceParams avtInterfaceParams;
- Ptr responseBufferPtr;
- UInt32 responseBufferSize;
- };
- typedef struct AVTNextFrameParamsStruct
- AVTNextFrameParams,
- *AVTNextFrameParamsPtr;
-
- struct AVTPreviousFrameParamsStruct
- {
- AVTInterfaceParams avtInterfaceParams;
- Ptr responseBufferPtr;
- UInt32 responseBufferSize;
- };
- typedef struct AVTPreviousFrameParamsStruct
- AVTPreviousFrameParams,
- *AVTPreviousFrameParamsPtr;
-
- struct AVTWhatchaDoingParamsStruct
- {
- AVTInterfaceParams avtInterfaceParams;
- Ptr responseBufferPtr;
- UInt32 responseBufferSize;
- int what;
- };
- typedef struct AVTWhatchaDoingParamsStruct
- AVTWhatchaDoingParams,
- *AVTWhatchaDoingParamsPtr;
-
- struct AVTDumpParamsStruct
- {
- AVTInterfaceParams avtInterfaceParams;
- Ptr dumpBuffer;
- UInt32 dumpBufferSize;
- UInt32 dumpBufferOffset;
- };
- typedef struct AVTDumpParamsStruct
- AVTDumpParams,
- *AVTDumpParamsPtr;
-
- struct AVTPlaySnapShotParamsStruct
- {
- AVTInterfaceParams avtInterfaceParams;
- Ptr snapShotBuffer;
- UInt32 snapShotBufferSize;
- };
- typedef struct AVTPlaySnapShotParamsStruct
- AVTPlaySnapShotParams,
- *AVTPlaySnapShotParamsPtr;
-
-
- ////////////////////////////////////////////////////////////////////////////////
- //
- // AV transport control driver family services.
- //
-
- OSStatus RegisterAVTClientApplication (
- AVTClientID *pAVTClientID,
- UInt32 clientContextData);
-
- OSStatus UnregisterAVTClientApplication (
- AVTClientID avtClientID);
-
- OSStatus GetAVTDriverList (
- AVTDriverID *pAVTDriverIDList,
- UInt32 avtDriverIDListSize,
- UInt32 *pNumAVTDrivers);
-
- OSStatus CallAVTDriver (
- AVTDriverID avtDriverID,
- AVTInterfaceParamsPtr pInterfaceParams);
-
- OSStatus OpenAVTDriver (
- AVTDriverID avtDriverID);
-
- OSStatus CloseAVTDriver (
- AVTDriverID avtDriverID);
-
- OSStatus GetNextAVTClientEvent (
- AVTClientID avtClientID);
-
-
- #if PRAGMA_ALIGN_SUPPORTED
- #pragma options align=reset
- #endif
-
- #if PRAGMA_IMPORT_SUPPORTED
- #pragma import off
- #endif
-
- #ifdef __cplusplus
- }
- #endif
-
- #endif /* __AVTRANSPORT__ */
-